package com.br.outros;

import java.util.ArrayList;

public class CalculaDistanciasMobile {
	private static double latitude;
	private static double longitude;

	private static String[] vetor;

	public static double getLatitude() {
		return latitude;
	}

	public static void setLatitude(double lat) {
		latitude = lat;
	}

	public static double getLongitude() {
		return longitude;
	}

	public static void setLongitude(double longi) {
		longitude = longi;
	}

	private static ArrayList<double[]> vetCliente;

	private static ArrayList<double[]> vetBar;

	public static String[] getVetor() {
		return vetor;
	}

	public static void setVetor(String[] vet) {
		vetor = vet;
	}

	public static ArrayList<double[]> getVetCliente() {
		return vetCliente;
	}

	public static void setVetCliente(String coordenadas) {
		getLatitudeLongitude(coordenadas);
		double[] vet = new double[2];
		vet[0] = getLatitude();
		vet[1] = getLongitude();
		vetCliente.add(vet);
	}

	public static ArrayList<double[]> getVetBar() {
		return vetBar;
	}

	public static void setVetBar(String coordenadas) {
		getLatitudeLongitude(coordenadas);
		double[] vet = new double[2];
		vet[0] = getLatitude();
		vet[1] = getLongitude();
		vetBar.add(vet);
	}

	public static void getLatitudeLongitude(String coordenadas) {
		vetor = new String[2];
		vetor = coordenadas.split(";");
		setLatitude(Double.valueOf(vetor[0]));
		setLongitude(Double.valueOf(vetor[1]));
		// return 0;
	}

	public static double calculaDistancia(String pontosCli, String pontosBar) {
		// 6371*ACOS(COS(PI()*(90-D3)/180)*COS((90-D2)*PI()/180)+SEN((90-D3)*PI()/180)*SEN((90-D2)*PI()/180)*COS((E2-E3)*PI()/180))
		double[] pontoCli = new double[2];
		double[] pontoBar = new double[2];

		getLatitudeLongitude(pontosCli);
		pontoCli[0] = getLatitude();
		pontoCli[1] = getLongitude();

		getLatitudeLongitude(pontosBar);
		pontoBar[0] = getLatitude();
		pontoBar[1] = getLongitude();

		double res = 6371 * Math.acos(Math.cos(Math.PI * (90 - pontoBar[0])
				/ 180)
				* Math.cos((90 - pontoCli[0]) * Math.PI / 180)
				+ Math.sin((90 - pontoBar[0]) * Math.PI / 180)
				* Math.sin((90 - pontoCli[0]) * Math.PI / 180)
				* Math.cos((pontoCli[1] - pontoBar[1]) * Math.PI / 180));

		return res;

	}
}
